package springmvc.high.pojo;

import com.fasterxml.jackson.databind.deser.DataFormatReaders;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Past;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import java.util.Date;

/**
 * description: 参数校验
 *
 * 需求：
 *   1. name 不为null或空字符串
 *   2. password 长度大于6
 *   3. age 必须 >= 1
 *   4. email 邮箱格式的字符串
 *   5. birthday过去时间
 *
 * 校验注解
 *  1. 字符串不为空 @NotBlank，集合不为空 @NotEmpty，包装不为空 @NotNull
 *  2. 长度限制 @Length(min)
 *  3. 最小值 @Min()
 *  4. 邮箱 @Email
 *  5. 过去时间 @Past
 */
@Data
public class User {

    // TODO: 字符串不为空 @NotBlank，集合不为空 @NotEmpty，包装不为空 @NotNull
    @NotBlank
    private String name;

    @Length(min = 6)
    private String password;

    @Min(1)
    private int age;

    @Email
    private String email;

    @Past
    private Date birthday;
}
